#ifndef MTMATRIXBINARYOPERATOR_H
#define MTMATRIXBINARYOPERATOR_H

#include "MTExpression.hpp"

namespace MathematicaTranslator {
	
	/** 
	  *  Equivalent to MTBinaryOperator for CUDA operations.
	  *  \note future releases will be integrated with MTBinaryOperator
	  */
	class MTMatrixBinaryOperator : public MTExpression {
		
	public:
		std::string op;
		MTExpression& expr1;
		MTExpression& expr2;

		MTMatrixBinaryOperator(MTExpression& expr1, const std::string& op, MTExpression& expr2);

		virtual std::string* generateCode(CodeGenContext& context);
		virtual std::string* getType();
		virtual std::string* getNumberOfElements();
		virtual int getClassType();
	};

}
#endif
